/****************************************************************************
*                         A C A D E M I C   C O P Y
* 
* This file was produced by an ACADEMIC COPY of Parser Generator. It is for
* use in non-commercial software only. An ACADEMIC COPY of Parser Generator
* can only be used by a student, or a member of an academic community. If
* however you want to use Parser Generator for commercial purposes then you
* will need to purchase a license. For more information see the online help or
* go to the Bumble-Bee Software homepage at:
* 
* http://www.bumblebeesoftware.com
* 
* This notice must remain present in the file. It cannot be removed.
****************************************************************************/

/****************************************************************************
* yacc.h
* C++ header file generated from yacc.y.
* 
* Date: 05/05/13
* Time: 10:21:12
* 
* AYACC Version: 2.07
****************************************************************************/

#ifndef _YACC_H
#define _YACC_H

#include <yycpars.h>

#line 18 ".\\yacc.y"

	#include "table.h"
	#include "generate.h"
	#include "lexical.h"

#line 38 "yacc.h"
/////////////////////////////////////////////////////////////////////////////
// yacc

#ifndef YYEXPPARSER
#define YYEXPPARSER
#endif

class YYEXPPARSER YYFAR yacc : public _YL yyfparser {
public:
	yacc();
	virtual ~yacc();

protected:
	void yytables();
	virtual void yyaction(int action);
#ifdef YYDEBUG
	void YYFAR* yyattribute1(int index) const;
	void yyinitdebug(void YYFAR** p, int count) const;
#endif

	// attribute functions
	virtual void yystacktoval(int index);
	virtual void yyvaltostack(int index);
	virtual void yylvaltoval();
	virtual void yyvaltolval();
	virtual void yylvaltostack(int index);

	virtual void YYFAR* yynewattribute(int count);
	virtual void yydeleteattribute(void YYFAR* attribute);
	virtual void yycopyattribute(void YYFAR* dest, const void YYFAR* src, int count);

public:
#line 27 ".\\yacc.y"

public:
	int initalize(char const * str);
private:
	lexical	_lexical;

#line 78 "yacc.h"
};

#ifndef YYPARSERNAME
#define YYPARSERNAME yacc
#endif

#line 45 ".\\yacc.y"

// forward references
	class Symbol;

#line 90 "yacc.h"
#ifndef YYSTYPE
union tagYYSTYPE {
#line 51 ".\\yacc.y"

	int					textidx;
	Symbol				*symbol;
	std::vector<Symbol*>*attrlist;

#line 99 "yacc.h"
};

#define YYSTYPE union tagYYSTYPE
#endif

#define INCLUDE 257
#define INTERFACE 258
#define STRUCT 259
#define ENUM 260
#define VOID 261
#define BOOLEAN 262
#define INT8 263
#define INT16 264
#define INT32 265
#define INT64 266
#define UINT8 267
#define UINT16 268
#define UINT32 269
#define UINT64 270
#define STRING 271
#define VECTOR 272
#define COMMA 273
#define SEMI 274
#define INDETIFIER 275
#endif
